package com.pay.demo.config;

import com.pay.demo.enums.PayStatusEnum;

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;

/**
 * @program: demo
 * @description: 属性类型转换器
 * X 是实体属性的类型 Y 是数据库字段的类型
 * @author: guoxh
 * @create: 2019-04-01 19:29
 **/
@Converter
public class PayStatusConverter implements AttributeConverter<PayStatusEnum, Integer> {

    /**
     * 将实体属性X转化为Y存储到数据库中，即插入和更新操作时执行
     *
     * @param payStatusEnum
     * @return
     */
    @Override
    public Integer convertToDatabaseColumn(PayStatusEnum payStatusEnum) {
        return payStatusEnum.getCode();
    }

    /**
     * 将数据库中的字段Y转化为实体属性X，即查询操作时执行
     *
     * @param code
     * @return
     */
    @Override
    public PayStatusEnum convertToEntityAttribute(Integer code) {
        return PayStatusEnum.getPayStatusEnum(code);
    }
}
